package com.ruoyi.binding.service;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.binding.domain.JDP.Params.*;
import com.ruoyi.binding.domain.JDP.Tools.OkHttpSessionClient;
import com.ruoyi.binding.domain.MhOrderRawData;
import okhttp3.Response;

public interface IMhSecJDPService {
    //    接口常量
    /**
     * 登录接口路径
     */
    public static final String Login = "/Login/Login";

    /**
     * 订单指派接口路径 /OrderAjax/SetOrderZhiPaiByIDX
     */
    public static final String SetOrderZhiPaiByIDX = "/OrderAjax/SetOrderZhiPaiByIDX";

    /**
     * 机位/打手设置接口路径 /OrderAjax/SetOrderJiWei
     */
    public static final String SetOrderJiWei = "/OrderAjax/SetOrderJiWei";

    /**
     * 订单管理查询接口路径 /OrderAjax/GetOrderList
     */
    public static final String GetOrderList = "/OrderAjax/GetOrderList";

    /**
     * 抢单大厅列表接口路径 /OrderAjax/GetInsideRecOrderList
     */
    public static final String GetInsideRecOrderList = "/OrderAjax/GetInsideRecOrderList";

    /**
     * 游戏类型接口路径 /GameAjax/GetGameServerMangeList
     */
    public static final String GetGameServerMangeList = "/GameAjax/GetGameServerMangeList";
    /**
     * 用户列表路径 /UserAjax/GetUserList
     */
    public static final String GetUserList = "/UserAjax/GetUserList";

    /**
     * 订单状态修改接口路径 /OrderAjax/SetOrderSta
     */
    public static final String UpdateOrderStatus = "/OrderAjax/SetOrderSta";


    /**
     * 抢单大厅接单 /OrderAjax/RecOrderSliderVerifiCode
     */
    public static final String RecOrderSliderVerifiCode = "/OrderAjax/RecOrderSliderVerifiCode";

//    返回结果 code=0 失败, code=1 成功 msg=返回信息
    /**
     * 返回结果 code=0 成功, code=1 失败
     */
    public static final String code = "code";
    public static final String msg = "msg";

    //   登录方法
    public int login(OkHttpSessionClient client, Long deptId, String url, String username, String password) throws Exception;

    public int login(OkHttpSessionClient client) throws Exception;

    /**
     * 游戏类型方法
     */
    public JSONObject queryGameType(OkHttpSessionClient client) throws Exception;


    /**
     * 用户列表方法
     */
    public JSONObject queryUserList(OkHttpSessionClient client) throws Exception;

    /**
     * 抢单大厅订单查询方法
     *
     * @param jDPProOrderParam 抢单大厅订单查询参数
     * @return 抢单大厅订单查询结果
     */
    public JSONObject queryInsideRecOrder(OkHttpSessionClient client, JDPProOrderParam jDPProOrderParam) throws Exception;

    /**
     * 抢单大厅抢单方法
     *
     * @param jDPProTakeOrderParam 抢单大厅抢单参数
     * @return 抢单大厅抢单结果
     */
    public JSONObject takeOrder(OkHttpSessionClient client, JDPProTakeOrderParam jDPProTakeOrderParam) throws Exception;

    /**
     * 订单管理查询方法
     *
     * @param jdpCusQueryOrderParam 订单管理查询参数
     * @return 订单管理查询结果
     */
    public JSONObject queryOrder(OkHttpSessionClient client, JDPCusQueryOrderParam jdpCusQueryOrderParam) throws Exception;

    public MhOrderRawData queryAllOrder(OkHttpSessionClient client) throws Exception;

    /**
     * 订单指派方法
     *
     * @param jdpCusAllocateParam 订单指派参数
     * @return 订单指派结果
     */
    public JSONObject allocate(OkHttpSessionClient client, JDPCusAllocateParam jdpCusAllocateParam) throws Exception;

    /**
     * 机位/打手设置方法
     *
     * @param jdpCusSetUserParam 机位/打手设置参数
     * @return 机位/打手设置结果
     */
    public JSONObject setUser(OkHttpSessionClient client, JDPCusSetUserParam jdpCusSetUserParam) throws Exception;


    //    修改订单状态为代练中
    JSONObject updateOrderStatus(OkHttpSessionClient client, JDPSetOrderStaParam param) throws Exception;

}
